(Are you looking at a stale web page?  Try refreshing your
browser.)
( 
Latest Revision -- 
Nov 27, 2005
) 
( 11/27/05: added some of HW #5 ) 
( 11/17/05: added more of HW #4 ) 
( 11/16/05: added more of HW #4 ) 
( 11/13/05: added some of HW #4 ) 
( 10/26/05: moved back due date for HW #3 ) 
( 10/02/05: add the rest of homework #2 ) 
( 9/20/05: add some of homework #2 ) 
( 9/19/05: resolved due date for HW with schedule ) 
Homework Problems for CS 3750
  
Doing the homework properly will likely raise your course grade by one full
letter grade or more (e.g. from C to B, or from B to A). I will grade the
homework "generously."  I urge to to take advantage of the opportunity to do
well in the course.  
 Directions for homework submissions 
You'll get good grades on the homework if you show mastery of the
material.  Give thoughtful and complete answers.  Explain
your answers so as to demonstrate and prove to a skeptical reader that they
are correct.  
Put things into your own words. Do not copy, quote, or closely
paraphrase the textbook or other people's writings.  
Write so as to be understandable to a certain intended readership -- an
intelligent person who has completed the prerequisites for CS 3750 but who has
not yet taken CS 3750.  
If I don't feel that what you write is understandable to that audience then
you will lose substantial credit. 
You will need to keep an extra copy of everything you turn in.  Homework will
typically be due on the class day just prior to a test day.  I will discuss
answers to the homework immediately after collecting it.  You will not receive
graded homework back until sometime after you take the test.
 Form and Format 
-  Everything except source code (including "psuedo-code"): Turn in a
     hard copy.  Put it on the 'counter' in front of me before the beginning
     of class on the due date.  Double space.  Make margins of between 1" and
     1-1/4" on sides, top and bottom.  Use a font size from 10 to 14.  (I
     prefer a fixed-width font.)  
 -  Source code: Turn in neat, compilable code.  No more than 70
     characters per line.  Turn in one hard copy and one e-mail copy. Put the
     hard copy on the 'counter' in front of me before class starts.  Send the
     e-mail before midnight on the due date.  No attachments, please.  Just
     put the text in-line into the message. 
 
Send e-mail to:  john@ishi.csustan.edu 
 
Homework Assignment #1  
Due 
Wednesday, September 21
Chapter #01 -- Introduction
      
-  Write 250 words or more describing the interplay between
     operating system software and the interrupt mechanism.  In your writing
     show that you understand A) how interrupts "drive" the actions of the
     operating system, and B) how the interrupt mechanism in a modern
     computing system actually works (what hardware devices do to cause an
     interrupt and the sequence of events that take place between the time
     that the currently running program is interrupted and the time that
     program resumes execution).
 
Chapter #02 -- Operating System Structures 
      
-  Using information gleaned from chapters one and two, write 500 words or
     more describing the important functions and responsibilities of a modern
     multi-user, time-sharing operating system. 
 -  Using information from section 2.7 write 250 words or more describing
     several different approaches to designing operating system structure.
     Discuss the advantages and disadvantages of each approach.
 
Chapter #03 -- Processes  
      
-  Write 250 words on the topic of programs and processes.  Define what a
     program is and what a process is.  Explain what the
     differences and similarities are between the two concepts.  Explain
     and/or speculate on what operating system data structures must be
     employed in order to maintain and preserve a program.  Answer the
     same question for a process.  Give attention to similarities and
     differences regarding the data structures too.  Use information distilled
     from your readings of chapter 3 to help you answer this question, and add
     whatever else you know that you think will be helpful.  (Keep in mind the
     "intended readership" described in the directions above.)
 
 
Homework Assignment #2  
Due 
Monday, October 10
Chapter #04 -- Threads 
 
-  Rewrite the essay you wrote in answer to the question for chapter #03.
     The directions are the same except that this time you must cover three
     concepts: program, process, and thread.  In addition
     to adding information about threads, since you know more now you should
     be able to improve on what you said before about programs and processes.
 
 Chapter #05 -- Scheduling  
 
-  Do problem 5.4 on page 187 (this involves making Gantt charts and
     calculating measures of the performance of several scheduling
     algorithms).
     
 -  Do problem 5.7 on page 188.
 
 Chapter #06 -- Process Synchronization  
 
-  Do the problem in the file 
      hymanProb.html 
     in this directory.  Please take note of the example "scenario" described
     in the problem statement.  Make sure that the solution you construct is
     the same kind of specific and detailed scenario. 
 -  Propose a solution to the "second readers-writers problem" which is
     described in section 6.6.2 of the text.  Write up the proposed solution
     using the same format as figures 6.12 and 6.13 (and the declarations of
     shared variables above figure 6.12).  In other words write pseudo code
     that shows what the shared variables are, pseudo code for writer
     processes, and pseudo code for reader processes.  Also, like the solution
     shown in figures 6.12 to 6.13, use only semaphores for synchronization.
     
     Assumptions:
     
     
     -  The total number of readers and writers does not exceed some fixed
	  bound N.
     
 -  You can declare and use as many semaphore variables as you need.
     
 -  The semaphores work as defined in 6.5.2
     
 -  The list S in each semaphore is a FIFO queue.
     
 
     
     In addition to enforcing exclusive writes and allowing shared reads, your
     solution should be starvation free, and satisfy the progress & bounded
     waiting requirements for solutions to critical section problems. (See
     section 6.1.)
 
 
Homework Assignment #3  
Due 
Friday, October 28 
Monday, October 31 
Chapter #07 -- Deadlocks  
 
-  Do problem #7.11 on page 270.  (The problem starts with: "Consider the
     following snapshot of a system ...") Show all your work (in detail).  Use
     the same kind of
format you see here.
 
 
Chapter #08 -- Memory Management  
 
-  Do problem 8.3 on page 310 (It starts "Given five memory partitions ...
     ").
     
     -  Remember the possibility of using holes created by previous
	  allocations),
     
 -  Assume that for each allocation, the first-fit algorithm starts its
	  search again at the beginning of the list.
     
 
 
      
 -  Do problem 8.5 on page 311 (It starts: "Compare the main memory
     organization ..."  
 
 -  Do problem 8.9 on page 311 (It starts: "Consider a paging system with the
      page table stored in memory." 
 
 -  Do problem 8.12 on page 312 (It starts: "Consider the following segment
     table"  
 
 
 
Chapter #09 -- Virtual Memory  
 
-  Do the following problem.  Show all work in detail. 
A virtual address of 76543656 (hex) appears in a program that is being run on
a computer that does demand paging.  The computer has 24-bit physical
addresses, 32-bit virtual addresses, and a 1K-word page-size.  How many
physical frames are there?  How many virtual pages are there?  What are the
page number and the offset corresponding to the virtual address?  (Give the
last two both in hex notation and decimal notation.)  
 -  Do problem 9.5 on page 366 (It starts: "Assume that we have a
      demand-paged memory.  The page table is held in registers. ...").
      
 
 
 
Homework Assignment #4  
Due 
Friday, November 18
Chapter #10 -- File-System Interface  
 
-  Do problem 10.1 on page 408 ("Consider a file system where a file ...")
 -  Do problem 10.9 on page 409 ("Some systems provide file sharing by ...")
 
 
Chapter #11 -- File-System Implementation  
 
-  Do problem 11.2 on page 447 ("What are the advantages of the variant ...")
 -  Do problem 11.5 on page 448 ("Discuss how performance optimization ...")
 -  Do problem 11.6 on page 448 ("Consider a file system on a disk that has ...")
 
 
Chapter #12 -- Mass-Storage Structure  
 
-  Do problem 12.2 on page 489-490 ("Suppose that a disk drive has 5000 ...")
 -  Do problem 12.15 on page 492 ("Discuss the relative advantages and ...")
 -  Do problem 12.21 on page 493 ("Suppose that a one-sided 5.25-inch optical-disk ...")
 
 
Chapter #13 -- I/O Systems  
 
-  Do problem 13.6 on page 526 ("Describe three circumstances under ...")
 
 
Chapter #14 -- Protection  
 
-  Do problem 14.5 on page 556 ("Describe the strengths ... access lists
     that are associated with objects.")
 
 
Chapter #15 -- Security  
 
-  Do problem 15.14 on page 605 ("Discuss how the asymmetric encryption
     algorithm can be used to achieve the following goals ...")
 
 
Homework Assignment #5  
Due 
Wednesday, December 07
 Chapter #16 -- Distributed System Structures 
 
-  Do problem 16.2 on page 638 ("Contrast the various network topologies in
     terms of ...")
 -  Do problem 16.4 on page 638 ("Explain why doubling the speed of the
     systems on an Ethernet  ...")
 -  Do problem 16.6 on page 639 ("In what ways is using a name server better
     ...")
 
 
Chapter #17 -- Distributed File Systems 
 
-  Do problem 17.11 on page 660 ("Describe some of the fundamental
     differences between AFS and NFS (see Chapter 11).") [Give proper
     attention to this - there is rather a lot to discuss.  Write at least 350
     words.]
 
 
Chapter #18 -- Distributed Coordination 
 
-  Do problem 18.5 on page 689 ("Your company is building a conmputer
     network, and you are asked to develop a scheme ...")